package t_02_nio;

import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;

public class NIOClient {
    public static void main(String[] args) throws Exception {
        SocketChannel socketChannel = SocketChannel.open(); // 得到一个网络通道
        socketChannel.configureBlocking(false); // 设置非阻塞
        // 提供服务器端的 ip 和 port
        InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 6666);

        // 连接服务器
        if (!socketChannel.connect(inetSocketAddress)) {
            while (!socketChannel.finishConnect()) {
                System.out.println("因为连接需要时间，客户端不会阻塞，可以做其它工作..");
            }
        }

        // 如果连接成功，就发送数据
        ByteBuffer buffer = ByteBuffer.wrap("hello，中国".getBytes()); // 将字节数组包装到缓冲区中
        socketChannel.write(buffer); // 发送数据，将 buffer 数据写入 channel

        // buffer.clear();
        // int size;
        // while ((size = socketChannel.read(buffer)) != -1) {
        //     System.out.println(new String(buffer.array(), 0, size));
        // }
        // System.in.read();
    }
}
